package com.yeung.rule;

import com.netflix.client.config.IClientConfig;
import com.netflix.loadbalancer.AbstractLoadBalancerRule;
import com.netflix.loadbalancer.ILoadBalancer;
import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.Server;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.List;

/**
 * 1. 实现自定的配置类, 来自定义负载均衡算法
 * 注意, 这个配置类只能在非启动类所在包的其他包中
 * 2. 在spring boot启动类上添加@RibbonClient(name = "MICROSERVICECLOUD-DEPT",configuration = MyRule.class) 注解
 */
@Configuration
public class MySelfRule {

    /**
     * 自定义实现负载均衡算法
     * 使用随机负载均衡
     *
     * @return
     */
    @Bean
    public IRule myRule() {
//        return new RoundRobinRule();//轮询
//        return new RandomRule();
        return new MyRandomRule();//自定义的随机算法
    }

}

